function [do,sio,xo,yo,dodd,siod]=obstacle_detect2(obs_obj,X,Y,Xd,Yd,car_angle,car_angle_d)
    obs_num=size(obs_obj);
    do_sio_g=[];
%     persistent xo_pre yo_pre ko;
%     if isempty(xo_pre)
%         xo_pre=4;
%         yo_pre=0;
%         ko=0;
%     end
    %得出最小值
    for j=1:obs_num(1)
        dod=obs_obj(j,:)-[X,Y];
        ang_obs=dot(dod,[1,0]);
        c_obs=ang_obs/(norm(dod)*norm([1,0]));
        ang_obs=acos(c_obs);
        if(dod(2)<0)
            ang_obs=-ang_obs;
        end
        ang_obs_car=ang_obs-car_angle;
        ddod=norm(dod);
        if(ang_obs_car>=-pi/2&&ang_obs_car<=pi/2)
            if(ddod<=4)
                do_sio_g=[do_sio_g;obs_obj(j,1),obs_obj(j,2),ddod,ang_obs_car];
            end
        end
    end
    if(size(do_sio_g,1)~=0)
        [do,j]=min(do_sio_g(:,3));
        sio=do_sio_g(j,4);
        xo=do_sio_g(j,1);
        yo=do_sio_g(j,2);
%         if(ko~=0)
%             dodd_=[xo_pre,yo_pre]-[Xd,Yd];
%         else
            dodd_=[xo,yo]-[Xd,Yd];
%         end
        dodd=norm(dodd_);
        siod_cos=dot(dodd_,[1,0])/(dodd);
        siod=acos(siod_cos);
        if(dodd_(2)<0)
            siod=-siod-car_angle_d;
        else
            siod=siod-car_angle_d;
        end
    else
        do=4;
        sio=0;
        xo=X+do*cos(car_angle);
        yo=Y+do*sin(car_angle);
%         if(ko~=0)
%             dodd_=[xo_pre,yo_pre]-[Xd,Yd];
%         else
            dodd_=[xo,yo]-[Xd,Yd];
%         end
        dodd=norm(dodd_);
        siod_cos=dot(dodd_,[1,0])/(dodd);
        siod=acos(siod_cos);
        if(dodd_(2)<0)
            siod=-siod-car_angle_d;
        else
            siod=siod-car_angle_d;
        end
    end
%     xo_pre=xo;
%     yo_pre=yo;
%     ko=ko+1;
end